# Maintainer: Daurnimator <quae@archlinux.org>
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Sébastien Luttringer
# Contributor: SpepS <dreamspepser at yahoo dot it>
# Contributor: Laszlo Papp <djszapi at archlinux us>
# Contributor: Donald Ephraim Curtis <dcurtis@gmail.com>

pkgbase=penlight
pkgname=('lua-penlight' 'lua53-penlight' 'lua52-penlight' 'lua51-penlight')
pkgver=1.13.1
pkgrel=1
pkgdesc='Lua libraries focusing on input data handling'
url='https://github.com/lunarmodules/Penlight'
arch=('any')
license=('MIT')
makedepends=('luarocks'
             'lua51' 'lua52' 'lua53' 'lua') # https://github.com/luarocks/luarocks/issues/1275
checkdepends=('busted'
              'lua51-busted'
              'lua51-filesystem'
              'lua52-busted'
              'lua52-filesystem'
              'lua53-busted'
              'lua53-filesystem'
              'lua-busted'
              'lua-filesystem')
source=("https://github.com/lunarmodules/Penlight/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha256sums=('530380e1a377df519c2e589f47823f79701f8e0e67f6bbd994e18d09a470b680')

build() {
  cd Penlight-${pkgver}

  local _version
  for _version in 5.1 5.2 5.3 5.4; do
    mkdir -p "$_version/"
    luarocks make --pack-binary-rock --lua-version="$_version" --deps-mode=none \
      rockspecs/penlight-"$pkgver"-1.rockspec
    mv penlight-"$pkgver"-1.*.rock "$_version/"
  done
}

check() {
  cd Penlight-${pkgver}

  local _version
  for _version in 5.1 5.2 5.3 5.4; do
    # Upstream is migrating to busted, run.lua is legacy format tests
    env LUA_PATH="${PWD}/lua/?/init.lua;${PWD}/lua/?.lua;;" \
      "lua${_version}" run.lua
    # https://github.com/lunarmodules/Penlight/issues/411
    env LUA_PATH="${PWD}/lua/?/init.lua;${PWD}/lua/?.lua;;" \
      busted --lua "lua${_version}" --exclude-pattern app_spec
  done
}

_package() {
  lib_version="$1"

  pkgdesc="$pkgdesc for Lua $lib_version"

  cd Penlight-${pkgver}
  luarocks install --lua-version="$lib_version" --tree="$pkgdir/usr/" --deps-mode=none --no-manifest "$lib_version"/*.rock
  install -Dm 644 CONTRIBUTING.md CHANGELOG.md README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
  ln -s "/usr/lib/luarocks/rocks-${lib_version}/penlight/${pkgver}-1/docs/manual" "${pkgdir}/usr/share/doc/${pkgname}/manual"
  ln -s "/usr/lib/luarocks/rocks-${lib_version}/penlight/${pkgver}-1/docs/examples" "${pkgdir}/usr/share/doc/${pkgname}/examples"
  install -Dm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_lua53-penlight() {
  depends=("lua53-filesystem")

  _package 5.3
}

package_lua52-penlight() {
  depends=("lua52-filesystem")

  _package 5.2
}

package_lua51-penlight() {
  depends=("lua51-filesystem")

  _package 5.1
}

package_lua-penlight() {
  depends=("lua-filesystem")

  _package 5.4
}

# vim: ts=2 sw=2 et:
